1
La natura centrata sulla memoria delle prestazioni della GPU
AI024Lesson 5
00:00

Nell'accelerazione GPU, dobbiamo abbandonare la mentalità "calcolo prima di tutto". Le prestazioni moderne sono determinate da Gestione della memoria: l'organizzazione dell'allocazione, della sincronizzazione e dell'ottimizzazione dei dati tra l'host (CPU) e il dispositivo (GPU).

1. La disparità tra memoria e calcolo

Mentre il rendimento aritmetico della GPU ($TFLOPS$) è aumentato esponenzialmente, la larghezza di banda della memoria ($GB/s$) è cresciuta a un ritmo molto più lento. Ciò crea una lacuna in cui le unità di esecuzione spesso si trovano "in carestia", in attesa che i dati arrivino dalla VRAM. Di conseguenza, la programmazione GPU è spesso programmazione della memoria.

2. Il modello Roofline

Questo modello visualizza la relazione tra Intensità aritmetica (FLOPs/byte) e prestazioni. Le applicazioni si dividono tipicamente in due categorie:

  • Limitata dalla larghezza di banda: Limitata dalla larghezza di banda (la pendenza ripida).
  • Limitata dal calcolo: Limitata dai picchi di TFLOPS (il tetto orizzontale).
Intensità aritmetica (FLOPs/byte)Prestazioni (GFLOPS)Limitata dalla larghezza di bandaLimitata dal calcolo

3. L'imposta del movimento dei dati

Il principale collo di bottiglia delle prestazioni raramente è il calcolo matematico; è la latenza e il costo energetico nel trasferire un byte attraverso il bus PCIe o dall'HBM. Il codice ad alte prestazioni privilegia la permanenza dei dati e riduce al minimo i trasferimenti tra host e dispositivo.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>